/*
 * 
 * Libman
 * 
 * Daniel Kaufmann, Martin Lang, Simon Moosbrugger,
 * Stefan Mayer, Stephan Halbeisen
 * 
 */
package application.server;

import java.rmi.Remote;
import java.rmi.RemoteException;
import java.util.List;

import application.exceptions.ExemplarNotFoundException;
import application.exceptions.MediumNotFoundException;

import middleware.datacontainer.searchclient.ExemplarContainer;
import middleware.datacontainer.searchmedium.MediumContainer;

/**
 * The Interface MediumSearchRemote.
 */
public interface MediumSearchRemote extends Remote {
	
	/**
	 * Search medium.
	 * 
	 * @param searchText
	 *            the search text
	 * @return the list
	 * @throws RemoteException
	 *             the remote exception
	 */
	List<MediumContainer> searchMedium(String searchText)
			throws RemoteException;

	/**
	 * Gets the exemplars.
	 * 
	 * @param mediumID
	 *            the medium id
	 * @return the exemplars
	 * @throws RemoteException
	 *             the remote exception
	 * @throws MediumNotFoundException
	 *             the medium not found exception
	 * @throws ExemplarNotFoundException
	 *             the exemplar not found exception
	 */
	List<ExemplarContainer> getExemplars(Integer mediumID)
			throws RemoteException, MediumNotFoundException,
			ExemplarNotFoundException;
}
